This application claims priority under 35 U.S.C. xc2xa7xc2xa7 119 and/or 365 to 0001917-4 filed in Sweden on May 23, 2000; the entire contents of which are hereby incorporated by reference.
The invention relates generally to D/A converters and more specifically to a method of scrambling or randomization of thermometer coded input data in order to reduce the influence of matching errors in D/A converters.
Due to time-mismatches in the switching of the output in the D/A converters (DACs), a wrong output may be generated for short periods of time. A worst case scenario is the transition between the binary codes  less than 01 . . . 11 greater than  and  less than 10 . . . 00 greater than . For a short moment, the maximal output code  less than 11 . . . 11 greater than  may appear, resulting in a large current spike, a so-called glitch, on the output. Glitches are a large problem since they put an upper limit on the speed-performance of DACs.
One solution to this problem is to use a thermometer coded DAC.
When using a thermometer code as input, no weights will be switched on in the DACs at the same time as other weights are switched off. Hence, glitches are reduced.
Unfortunately, this good property of the thermometer code is spoiled when so-called dynamic element matching (DEM) technique is introduced in the DACs.
In a DAC using DEM architecture, the signal path through the converter is randomized in order to decorrelate mismatch errors from the DAC weights and the output signal. In a thermometer coded DAC, all weights are equally large and it is therefore the most suitable architecture for randomization. Without randomization, a specific set of weights are assigned to each code and the influence of the matching error will become highly signal dependent. In view hereof, the SFDR (Spurious-Free Dynamic Range) will be poor. Since all bits are weighted equally in the thermometer code, there are many combinations that represent the same decimal value. Since all weights are equally large, different sets of weights may be randomly assigned to each code at different time instants. This is sometimes referred to as scrambling.
For example, in a randomized thermometer coded 14-bit DAC, there are 16383 different weights to choose from when applying the code 000 . . . 0001 at the input. Time-averaging the result, i.e. the static output amplitude levels, the weights become dynamically matched.
As long as the variation of weight assignment is uncorrelated with the input signal, the distortion terms arising from the matching errors will be transformed into noise.
A large drawback with all the commonly known DEM techniques is problems with glitches.
The object of the invention is to combine the glitch minimizing property of the thermometer code with the good SFDR performance from the use of DEM techniques.
Basically this is attained by randomly selecting what weights to switch on only among the combinations that result in minimal glitching.